import { useState, useCallback }from 'react';

// 通过创建一个自定义Hook,可以很好的将逻辑提取出来，成为一个可重用的模块
export default function useCounter() {
    // 定义 count 这个 state 用于保存当前数值
    const [count, setCount] = useState(0);
    // 实现加 1 的操作
    const increment = useCallback(() => setCount(count + 1), [count]);
    // 实现减 1 的操作
    const decrement = useCallback(() => setCount(count - 1), [count]);
    // 重置计数器
    const reset = useCallback(() => setCount(0), []);

    // 将业务逻辑的操作 export 出去供调用者使用
    return { count, increment, decrement, reset };
}